Textual data storage method

ABSTRACT

A hand-held electronic device for use in accessing and displaying textual information. The device may include: a display for displaying information; a processor; a memory; and a word dictionary table stored in the memory, the word dictionary table may include a word list of unique words that are contained in the textual information. The word dictionary table may also include a set of word identification tokens, where each word identification token represents one of the unique words in the word list. The memory may also include a phrase dictionary table, which may include a phrase list of word identification token groups, each word identification token group representing a phrase that is contained in the textual information. The phrase dictionary table may further include a set of phrase identification tokens, each phrase identification token representing one of the phrases in the textual information. The memory may include removable module.

RELATED APPLICATIONS

Priority is claimed to the following patent applications:

-   -   U.S. Provisional Patent Application No. 60/231,713, entitled        “Hand Held Data Entry and Display Unit,” filed on Sep. 11, 2000;    -   U.S. Provisional Patent Application No. 60/239,269, entitled        “Automotive Diagnostics Data Management,” filed on Oct. 12,        2000; and    -   U.S. Provisional Patent Application No. 60/295,746, entitled        “Software-Based Vehicle Diagnostic System,” filed on Jun. 4,        2001.        The entirety of these patent applications is expressly        incorporated herein by reference.

COMPUTER PROGRAM LISTING APPENDIX

This application contains a computer program listing appendix. Theappendix is fully incorporated herein by reference. The computer programlisting comprises a single file named “VBDataConvertSourceCode.txt”.

COPYRIGHT

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patentdisclosure, as it appears in the Patent and Trademark Office patentfiles or records, but otherwise reserves all United States andInternational copyright rights whatsoever.

BACKGROUND

1. Technical Field

A method and apparatus relating to the field of data storage, and, moreparticularly, a method and apparatus for storing, accessing, andpresenting technical information for use in automotive maintenance andrepair, is disclosed.

2. Description of Related Art

Recent advances in data storage techniques and the development ofportable digital assistants (PDAs) and similar devices have made itpossible for users to have immediate access to large amounts of data,literally at their fingertips. Such data may include names, phonenumbers, addresses, date books, documents, specialized wireless webpages, financial information, personal to-do lists, or calendars.

In addition to providing built-in functions, some PDAs include expansionslots for inserting modules. These modules allow for virtually unlimitedfunctions to be performed by the devices, such as digital photography,MP3 music, memory expansion, games, modems, universal remote controls,or global positioning systems.

Some specialized hand-held devices (i.e., units that are notgeneral-purpose PDAs) have made limited amounts of technical data foruse in servicing and repairing automobiles available to users. One suchhand-held device provides specifications-dedicated information, such asbattery, ignition system, starter, belt tension, engine torque, wheelalignment, and wheel nut torque specifications for a range of vehiclesand model years. However, while specialized devices may save atechnician a trip to a shop manual for a specification, it is not areplacement for the comprehensive repair information contained in abound set of shop manuals, such as the manuals published by the MitchellRepair Information Company (MRIC). Specifically, MRIC illustrates thesteps in addition to the raw specifications needed to complete a repairor other operation. Also, specialized handhelds typically don't have anyprovision for a technician to enter his own information to help him keeptrack of (or share) what he learns through experience, or to maintain aninventory of his tools, for example.

In addition, updating a similar dedicated device is inconvenient anderror-prone: it requires some disassembly of the unit and the removaland replacement, by a user, of an internal memory component that may besensitive to electrostatic discharge or other damage. Finally, bydefinition, specialized hand-held references do not providegeneral-purpose functionality, such as a calculator, date book, or to-dolist to help justify their purchase.

General purpose PDAs, on the other hand, do provide a wide range offunctions, but due to memory limitations (and limitations of currentdata compression techniques), they can not store the comprehensiveamounts of data needed to make them viable alternatives to hardboundservice manuals. Thus, a better solution is desired.

SUMMARY

A hand-held electronic device for use in accessing and displayingtextual information, such as automotive repair specifications andprocedures, is disclosed. The device may (or may not be) ageneral-purpose PDA. If a general purpose PDA is used, the PDA can, ofcourse, be used for its other included functions when it is not beingused as a technician's reference tool. The device may comprise: adisplay for displaying information to a user; a processor; a memory; andat least one word dictionary table stored in the memory, the worddictionary table comprising a first list of unique words that arecontained in the textual information, and further comprising a set ofword identification tokens, each word identification token representingone of the unique words in the first list.

The device may also include at least one phrase dictionary table storedin the memory, the phrase dictionary table comprising a second list ofword identification token groups. Each word identification token groupin turn represents a phrase that is contained in the textualinformation. The phrase dictionary may further comprise a set of phraseidentification tokens, each phrase identification token representing oneof the phrases in the textual information.

A user may select various menu items (by, for example, using atouchscreen) to cause the device to display the desired information. Inresponse to the selection of a menu item, the device may display (inuncompressed, human-readable form) a portion of the textual informationstored in the memory.

In another embodiment, the memory may comprise one or more userremovable memory modules. Through the use of proven, rugged memorymodules that may be inserted in an external expansion slot, the datastored in memory can be easily updated. For example, if the device isused to store automotive reference data in accordance with one disclosedembodiment, modules containing specifications for other models of carscan be added. Moreover, modules with data of a type not contained onpreviously available modules may be supplied to users, greatly expandingthe functionality and flexibility of the device. For example, modulescould be developed to record and store operating temperatures of variouscomponents of a racecar, and the device could then be used to predictfailure or improve the performance of the racecar.

By first converting a set of textual information (such as repairinformation) into word tokens representing unique words in the text andthen screening the resulting list of tokens for repeating phrases, veryhigh compression ratios may be realized, especially where certainphrases are repeated in the text frequently. Because of this highcompression efficiency, much more data can be stored in a memory of agiven size. This compression efficiency, in turn, allows a significantamount of repair information, detailed procedures, specifications,technical service bulletins (TSBs), electrical component locators, to bestored, accessed and displayed from a single, hand-held device. Usingsuch a device, a technician could greatly reduce or even eliminate hisreliance on (and the inconvenience of) hardbound shop manuals for repairinformation. Further, using an efficient compression technique can freeup enough memory (either module-based or built-in) to allow a user tostore his own notes and tool inventory in the device for quickreference.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments of the present system and method are describedherein with reference to the drawings, in which:

FIG. 1 illustrates a hand-held electronic device with a root-level SmartData System (SDS) menu displayed;

FIG. 2 is a simplified block diagram illustrating a hand-held electronicdevice in which an exemplary embodiment of an SDS may be implemented;

FIG. 3 is a flow chart illustrating the operation of an exemplaryembodiment of an SDS;

FIG. 4 is a table illustrating an exemplary embodiment of a worddictionary;

FIG. 5 is a table illustrating an exemplary embodiment of a phrasedictionary; and

FIG. 6 is a flow chart further illustrating the operation of anexemplary embodiment of an SDS.

DETAILED DESCRIPTION

A hand-held electronic device 10 with a root-level Smart Data System(SDS) menu 12 displayed is shown in FIG. 1. Hand-held electronic device10 may be used to store, access, and display textual information. Asimplified block diagram of hand-held electronic device 10 isillustrated in FIG. 2. The hand-held device could be a personal digitalassistant (PDA) or a similar device. Alternatively, the device could bea stand-alone unit: that is, it could be a device made specifically fordisplaying information as described herein and not having generalpurpose functionality. Thus, as used here, the term PDA includes anyhand-held electronic device capable of displaying and storinginformation.

The exemplary embodiment shown in FIG. 2 may have a processor 14 (e.g.,an integrated circuit microprocessor), a memory 16 (e.g., memory module,ROM, RAM, flash memory, hard disk), a synchronization (synch) interface18, and a user interface 20 that may incorporate a display/input, suchas a touchscreen, all of which may or may not be interconnected by asystem bus. Memory 16 may include more than one physical element, suchas built-in ROM, RAM, a removable memory module, and may also include:one or more dictionaries, such as a word dictionary and a phrasedictionary; a set of stored logic by which processor 14 may accept userinputs in order to access information stored in memory 16; a set ofstored logic by which processor 14 may display, via user interface 20,information in response to user inputs. Provided with the presentdisclosure, those skilled in the art can readily prepare appropriatecomputer instructions to perform such functions.

User interface 20 may include a display such as a liquid crystaldisplay, an active matrix display, or a CRT, and may also include atouchscreen, keypad, or voice input device, for accepting user input.

Synch interface 18 may include one or more inputs and outputs forcommunicating with various network devices, such as personal computers,remote access servers or the like. Synch interface 18 may be used toconfigure and update the PDA as necessary. Specifically, synch interface18 may be used, as one example, to synchronize PDA 10's data with datastored on another device such as a personal computer or applicationserver, to ensure that PDA 10's data is current. Synch interface 18 mayinclude a conductive set of contacts on the PDA, an infrared or otheroptical interface, or a wireless interface as defined by IEEE 802.11b.Synch interface 18 may also be used to synchronize data between two ormore PDAs.

The particular configuration shown in FIG. 2 is not crucial to thefunctioning of the present embodiment. For example, a device without asystem bus that has a memory and processor contained in one integratedcircuit could be used instead of a separate processor and memory.Similarly, the use of data modules or built-in memory is not critical tothe operation of the SDS. For example, the entire system could operatewithout memory modules by using any conventional wireless datatechnology, such as CDMA, TDMA, or GSM, to retrieve the required datafrom a wireless web server. The system could also operate by accessingdata on a computer or an application server using other wired orwireless communication technologies such as, without limitation, RS-232,Ethernet, infrared or RF wireless communications. The data compressiontechnique described could permit much faster data transfer times insystems where all or portions of the text or information to be displayedare stored separately from the handheld (or other) display device.

Data Compression

The exemplary embodiment of the handheld device may include tworemovable memory modules, which will be referred to as volume I andvolume II. The data contained in the volume I and volume II modulesrequire approximately two gigabytes of memory. Because the two moduleshold about eight megabytes each, the two gigabytes of data must becompressed to about 16 megabytes to implement the SDS using only twomodules. This is a much higher compression than is available with manycommon data compression methods. For example, “gzip” compression, andsome slightly more efficient methods, may produce compressionpercentages in the range of about 50% to 63%. Compressing 2 gigabytes ofdata into 16 megabytes, in comparison, represents a compressionpercentage of 99.2%, although some of this reduction may be due tojudicious elimination of unnecessary words and/or phrases.

To achieve this compression, the data may be compressed using twoalgorithms, both part of a utility program such as the programVBDataConvertSourceCode that is included herein as an appendix. Thecompression routine described could be implemented using any programminglanguage; the use of any particular programming language is not criticalto the proper functioning of the described embodiments. A set of basicsteps that may be used to compress data are shown in FIG. 3.

First, a given uncompressed text, known as a “flat file,” is searchedfor unique words—i.e., words that are not already stored in a worddictionary, as shown at step 30. When a unique word is found, the word,along with a two-byte token representing it, is stored in a worddictionary that is part of the handheld device's memory, as shown atstep 32. In the present embodiment, the flat files to be compressed arecontained in an input database containing eleven tables, ten of whichare processed by the data convert utility. These ten tables contain thedata for each category used in the SDS. The current categories are: 1)Electrical Component Locators; 2) Engine Performance Technical ServiceBulletins; 3) Torque Specifications; 4) Service Intervals; 5) FluidCapacities; 6) Brake Specifications 7) Brake Bleeding 8) ServiceReminder Indicator Reset Procedures 9) Emission Control ApplicationTables; and 10) Tune-Up Specifications.

Thus, textual information for each category may be stored as a number of2-byte word identification tokens that can represent words of anylength; the words can be displayed in uncompressed or “readable” formwhen a user accesses the text by “drilling down” through the menusdisplayed on the PDA. Word identification tokens and the words theyrepresent can be stored in memory 16 as fields of the same record in theword dictionary. For example, the word identification token or “word ID”could be stored in a field called an IDX (i.e., an “index”) field, whilethe actual word may be stored in a corresponding field of the samerecord, called a DATA field, as shown below. FIELD NAME FIELD TYPE IDXLong Integer DATA Text

An exemplary portion of a word dictionary is shown at FIG. 4. Eachrecord begins with the number of the record, and ends with the byte 00.Between the record number and the end byte is a variable length fieldcontaining the word.

Further compression of a word dictionary can be accomplished byeliminating the use of a separate word stored as a capitalized word.Instead, all words in the dictionary may be stored uncapitalized and thewords may be capitalized if necessary at the time they are displayed byusing rules to determine if the words would ordinarily be capitalized.For example, a word that is immediately preceded by a period and a spacemay be capitalized.

When a group of words appears frequently (or, at a minimum, more thanonce) in a given text, those groups may be termed “phrases”, and eachphrase may be tokenized. Different sized portions of a text can besearched for phrases to increase compression efficiency, as described inmore detail below. To accomplish phrase tokenization, first the wordtokenized data may be searched for repeating phrases, as shown at step34. It would also be possible, however, to search a flat file forrepeating phrases to be compressed. The order of compression is notcritical to the exemplary embodiment. Any repeating phrases may bestored in a table called a phrase dictionary. The phrase dictionary,also contained in memory 16, could thus contain a word identificationtoken group that represents the phrase, and a given group of word tokenscan be represented by a phrase identification token in the table. In afashion similar to the method of creating the word dictionary, thephrase identification token or “phrase ID” could be stored in a fieldcalled an IDX field. The actual set of word identification tokens orword IDs that represent the phrase may be stored in a correspondingfield of the same record, called a DATA field, as shown below and asrepresented by step 36. FIELD NAME FIELD TYPE IDX Long Integer DATA Setof Word Tokens

As was the case for the word dictionary, the textual informationrepresented by a phrase may be represented by a two-byte token; theentire phrase represented by the token may be displayed in uncompressedform whenever the two-byte token is encountered in a compressed text(i.e., a particular list of phrase and word tokens that representtextual information). In a given compressed text, a byte “FF” couldsignify that the following byte is the number of a phrase record, todistinguish the byte from a word token.

An exemplary portion of a phrase dictionary is shown at FIG. 5. Eachrecord begins with the number of the record, and ends with the byte 00.Between the record number and the end byte is a variable length fieldcontaining the word record numbers (tokens) that represent the phrase.In the example of FIG. 5, record number one (00 01) represents thephrase “Emission Control Device Applications”, comprised of the wordsstored in the word dictionary of FIG. 4. In compressed form, this phrasecould be represented by “FF 00 01”. Record number two represents a3-word phrase, and record number three represents a 5-word phrase.

The efficiency of the two-pass compression technique can be affected(e.g., improved) by adjusting the length of the phrases that are to becompressed. For example, searching a set of word tokens only for phrasesconsisting of two words, and storing those two words as a phrase, mightnot be very efficient, since the storage overhead, or amount of memoryused just to store the phrases and their indexes, would greatly reduceany compression efficiency that might be gained from the secondcompression pass.

Similarly, searching for and storing only phrases that are so long thatnot many phrases are actually found and stored might provide little, ifany, gain in compression over the first pass. Further, if the phrasedictionary is too long, which might result from including too broad arange or phrase lengths (e.g., 2 to 20 words in a phrase), the accesstime required to display the text could increase to the point ofdiminishing returns. Specifically, accessing stored text might take solong that users are unsatisfied with the end product.

FIG. 6 illustrates a set of functions that may be involved in eitheroptimizing the phrase length or bringing it within acceptable limits.The maximum desirable access time for a phrase dictionary of any givenlength may be set, as shown at step 40. Also, the maximum acceptablestorage size for phrases (e.g., the available storage size) may be set,as illustrated at step 42. Next, a phrase window size may be set, asshown at step 44. Setting the initial phrase window size to be used neednot be random. For example, if a phrase length between 4 and 12 wordshas been determined to be optimum for a given text, that phrase windowsize could be used as a starting point in an unknown text. It should berealized, however, that a different phrase window size could be optimalfor any particular text.

Next, the phrases can be tokenized and stored in a phrase dictionary,shown at step 46 (and described in greater detail with reference to FIG.3). When that step is done, it may be determined whether the phrasedictionary can be accessed within the maximum access time, shown at step48, and whether the phrase dictionary can be stored in the available oracceptable space, step 50. If it is determined at step 48 or step 50that the phrase window size is not optimum or at least acceptable, thephrase window size may be adjusted as shown at step 52 and part of theprocess (i.e., steps 46-52) may be repeated as often as required. Theminimum phrase length, the maximum phrase length, or both, may beadjusted at step 52. It is not necessary that the absolute optimumphrase window size be determined for any given text. Specifically, onceit is determined that a compressed text will fit within an availablememory size and can be accessed within an acceptable time, the“optimization” procedure may be stopped.

As part of the data conversion utility, the size of any particulararticle to be displayed can be calculated. Once the size is calculated,an access time flag can be set if necessary (for example, in the case oflarge articles) so that the PDA can display a message such as “Pleasewait . . . this may take up to 60 seconds”; this can prevent userfrustration while users are waiting for an article to be displayed.

The compression technique described can be performed “offline”; that is,once it is complete, the compressed text created and stored in memorycan be accessed and displayed without any further use of (or delayassociated with) the compression utility.

An exemplary smart data system (SDS) could be implemented using one ormore data modules (volumes) that contain automotive data. A technicianin an automotive repair shop may use a PDA equipped with an SDS datamodule to quickly reference selected specification-type information froma comprehensive automotive repair database. Alternatively, a stand-alonehand-held device (i.e., a device that does not provide the generalpurpose functionality of a PDA) may be used to providespecification-type reference information to a technician. Such astand-alone device may or may not have removable data modules.

For simplicity and ease of operation, an SDS application used inconjunction with a general purpose PDA may launch automatically when amodule is inserted into the PDA; once SDS is launched, a user need onlyselect a menu item that corresponds to the information the user needs inorder to proceed. Of course, the user may also launch the SDSapplication at any time by selecting its icon from the PDA's “home”screen.

Although an embodiment using two memory modules has been described, thenumber of modules required to implement SDS is not critical, and withadvances in data storage devices and compression, it is possible thatall required data could be stored on a single module; it is alsopossible that the data could be stored in a PDA's internal (i.e.,non-removable) memory.

In the exemplary embodiment, the five selectable menu items (each ofwhich is a separate application) may include:

-   -   A Data Viewer menu;    -   A Tool Inventory menu;    -   A Labor Tracker menu;    -   A KnowledgeBase menu; and    -   A Racing Schedules menu.

Any menu item may be accessed by the well-known use of a PDAtouchscreen. Alternatively, any menu item may also be accessed by usinga keypad or keyboard to scroll through menu items or to directly enter aletter or word that will allow access to the menu item that is desired.In such an alternative embodiment, the display may or may not be atouchscreen display. Regardless of the physical implementation, any suchmenu access devices may be referred to generally as “keypads”, while theterm “touchscreen” includes a liquid crystal display, a flat-paneldisplay, a CRT, or other display for providing visual information to auser.

As an illustration of accessing data, a user could access the “DataViewer” menu item shown in FIG. 1 by touching the Data Viewer “key” ordisplay area with a stylus. Once activated, the Data Viewer application(which is a PalmOS based application, but could be any other suitableapplication) displays further information, referred to as quickreference data, regarding particular vehicles. Upon entering the vehicleyear, make and model, (entered, again, via touchscreen or itsequivalent), users can choose to see information, contained in datasets, that is most frequently needed during the course of repairing aparticular vehicle. A first data set containing the information providedby the Data Viewer for each particular year, make, and model of vehicle(and contained, for example, in the volume I module) may include:

-   -   Brake Bleeding Procedures;    -   Brake Specifications;    -   Emission Control (EC) Applications;    -   Fluid Capacities;    -   Service Intervals;    -   SRI (Maintenance light) Reset Procedures;    -   Torque Specifications; and    -   Tune-Up Specifications;

A second data set, which may be contained in the volume II module, mayinclude:

-   -   Electrical Component Locators; and    -   Engine performance Technical Service Bulletins.

Other data sets, such as air conditioning specifications, could also beeasily added to an existing data module or to an additional module.Implementing the SDS using modules (rather than, for example, adedicated device) makes it easy for the data sets to be expanded and/orupdated, and, further, a technician can enter his own data into themodules, as will be described below.

In the exemplary embodiment, accessing the SDS data may be done by firstselecting the “Data Viewer” application and then selecting a year, makeand model for the desired vehicle using drop-down menus as describedabove. After a year, make, and model of vehicle is selected, a categoryof data may be entered, depending on the data module (i.e., volume I orvolume II) that is installed in the PDA and the information desired.Once a category of data, such as “Engine Performance TSBs”, is chosen,users can select an appropriate TSB. The desired information may then bedisplayed on the PDA. For example, a user could select and access TSBsfor a 1995 Chevrolet Camaro (not shown). At the next level, the TSB textthat would result if a user then selected the “Low voltage reading ordim lights . . . ” menu item could be displayed (not shown). The DataViewer application thus allows a user to quickly and easily findinformation for a particular automobile by simply walking over to histoolbox, rather than across a shop floor, and entering the year, make,model, and information that he is looking for.

In addition to the Data Viewer software application, the SDS also mayinclude four (or more) applications, each having its own source code.

A “Labor Tracker” is one such possible application; it is designed for atechnician or user to keep track of the hours worked, organized byrepair order. It also gives users the ability to input their own hourlyrate, so that at any time, they can calculate what their weekly pay willbe based on the repair orders they've entered to date. The system coulddisplay, for example, that a user has worked 1.7 hours on repair order123456, 4.4 hours on repair order 174365. The information could bedisplayed in table format, so a technician could see at a glance whichrepair orders were worked on, and for how long, for any given timeperiod (the time periods may be defined during set up of the LaborTracker application).

If the user set up an hourly rate of, for example, $25, and worked theabove hours during the week ending Sep. 9, 2001, the user could selectthe “calculate” key of the PDA and it could display “week ending Sep. 9,2001” and the amount $152.50 earned so far for that week. The LaborTracker application also allows a technician to review the money earnedfor past periods.

Another possible application is the “Tool Inventory” application. TheTool Inventory gives a technician the ability to keep track of all thetools in his toolbox, in the palm of his hand. This can be done by usingone of two methods in the SDS Tool Inventory application program. Thefirst method is the “tool builder”, which allows drop down “menu picks”of what type of tool is being entered, how large it is, what type ofvoltage (where applicable), what color it is, and so forth. When adrop-down menu item is selected, the item may then be entered into thehandheld device, along with the quantity. Alternatively, a techniciancan use manual entry via either the on-screen keyboard or theGraffiti®-method, to enter a tool description.

Another exemplary application is called KnowledgeBase™. TheKnowledgeBase™ is a technician's personal database. The KnowledgeBase™enables technicians to categorize by year, make and model, any kind ofinformation they want to keep track of for that vehicle—whether it is aunique repair operation, a mileage interval for planning or schedulingmaintenance, a record of the owner, and so on. The technician can keephis own personal database right in his PDA's data module. The datastored in modules for the Labor Tracker, Tool Inventory, andKnowledgeBase applications can be retained in the modules even when thePDA is powered off; moreover, by inserting modules into any PDA, thestored data can be accessed.

Yet another exemplary application is the “Racing Schedules” applicationfor the five popular racing series: NASCAR (North American Stock CarAuto Racing), CART (Champion Automotive Racing Teams), NHRA (NationalHot Rod Association), IRL (Indy racing league) and SCORE (SouthernCalifornia Off Road Events).

Thus, in the exemplary embodiment, SDS may comprise six applications;the five that users can select and also the launcher itself, whichallows a user to choose which application to use. Each application couldinclude its own source code. Further, the system's flexibility wouldeasily allow for the additions of further applications, should a need ordesire for them arise.

For example, repair estimates that are now done using bound manuals maybe performed by a PDA using the SDS. Thus, an estimator could select ayear, make, and model and a particular repair operation, and the SDScould cause the PDA to display the parts, labor, and time for theoperation according to known repair data. Such an estimate could becompleted in much less time than would be required using a bound volumeto look up the information. As another alternative application, onemodule might be used for imported cars and another module for domestic.

SDS could also be used to assist a technician in training for ASE exams.ASE (the National Institute for Automotive Service Excellence) is acertifying body for automotive technicians, and ASE has 11 exams that atechnician must pass in order to be certified as a master technician. AnSDS module may thus include practice examinations; a user could have aPDA display a question and an answer, and track the user's practicescore for him, display the results, and indicate where the user needs toimprove.

Another possible use for SDS is as a diagnostic tool. For example, anon-contact infrared thermometer sensor's electronics may be used inconjunction with a removable data module. Without touching a surface, aninfrared thermometer can read a heat signature. Once the temperature ofa part of an automobile is taken, it can be integrated into an SDSdatabase for any particular vehicle or type of vehicle. The temperaturedata, once in the SDS database, could easily be recalled. Such anapplication might be used in the racing industry for example, wherecrewmembers are constantly taking tire temperatures, brake temperatures.SDS may then be used as a diagnostic or preventative tool, as oneexample, to avoid brake fade if it is determined that one brake isheating up more than another (or is heating up outside of its expectedrange).

Other uses for temperature data might include reading the temperature ofdifferent cylinders, the exhaust manifold, radiator temperature, airconditioning condenser temperature, rear window defroster temperature,bearing temperatures (such as alternator bearings, or the bearings ofvirtually any rotating part). Further, a user might measure thecatalytic converter temperature to determine if the engine is runningnormally.

Thus, actual temperature data may be compared to predicted normaltemperature data, such as data provided by MRIC to make improveddiagnostic decisions. An SDS module (or set of modules) could beprovided that contains an extensive database for normal temperatures forvirtually any make, model, and year of vehicle. The temperature databasecould be accessed in the same way as brake bleeding specifications, asdescribed above. Other types of diagnostic tools could also be used withthe SDS system.

Future updates to SDS may be made to provide numerous differentfunctions, such as color screens, beaming the information from a server,Internet access to repair data, downloads.

The SDS may also be used to interface with other, PC-based softwaresystems to expand and increase the PDA's functionality. For example,more detailed information for a particular make, model, and year ofvehicle from a database larger than that which can be contained within aPDA may be transmitted, using the PDA's existing infrared technology, toa technician's PDA for use with the SDS software. For example, if atechnician is working on the brakes for a car that is relatively rareand not contained in a particular SDS module, the technician couldretrieve the brake information from a larger database.

Although several possible embodiments of an apparatus, system, andmethod has been described, various changes and modifications may be madeor suggested by those skilled in the art without departing from thespirit or scope of the claims that follow.

1. A method for storing data comprising: storing a word dictionary in a memory, the word dictionary including a first list of the unique words that are contained in the data and that also includes a set of word identification tokens, each word identification token representing one of the unique words in the first list; and storing a phrase dictionary in the memory, the phrase dictionary including a second list of word identification token groups, each word identification token group representing a phrase that is contained in the data, the second list further including a set of phrase identification tokens, each phrase identification token representing one of the word identification token groups.
 2. The method of claim 1, further comprising the step of: determining an optimum range of the length of the phrases that are to be included in the phrase dictionary and including only phrases of optimum length in the phrase dictionary.
 3. The method of claim 1, wherein the data comprises textual information.
 4. The method of claim 3, wherein the textual information comprises automotive repair and servicing information.
 5. The method of claim 1, wherein the memory comprises at least one removable module. 